כגון אזור המרכז: תל אביב, רמת גן וכו'.
מה הדרך הכי טובה לאחסן אותם? בטבלה נפרדת ? באותה טבלה?
ואיך אני ניגש בשאילתה למשל אם אני רוצה אזור המרכז שיתן לי את כל התוצאות מתוך התת ערים שלו או רק עיר אחת למשל ספיציפית, עם המבנה שאתה ממליץ?
16 תשובות
טבלה לאזורים, טבלה לערים שבטבלה לערים יש עמודה של האזור שבתוכו נמצאת העיר(ID של אזור).
כן חשבתי על זה אבל איזה דרך יש לי לדעת אם היוזר בחר אזור או עיר ספיציפית?
לא מבין אותך, לא מדובר פה על עיר שהיוזר גר בה. מדובר על טבלה למשל של מוצרים תחשוב כמו באתר יד שניה.
נגיד יש לי רשימת SELECT שהיוזר בוחר:
מרכז
תל אביב
רמת גן
צפון
עפולה
איך אני יכול לדעת אם המשתמש רוצה את כל המוצרים מהערים שבמרכז ואז להחזיר לו את המידע מכל הערים או אם הוא מבקש רק עיר אחת למשל תל אביב אז להחזיר לו מידע רק בנוגע לתל אביב
אתה יכול גם להשתמש בקובץ טקסט פשוט בשביל זה, אתה לא חייב רק מסד נתונים.
אתה יכול ליצור קובץ טקסט שיראה פחות או יותר ככה:
נתניה
תל אביב
רמת גן
-צפון-
עפולה
וב PHP לקבל מערך דו מימדי: מערך של כל האזורים, ובכל אזור מערך של כל הישובים.
אפשר לבסס את זה גם על מסד נתונים אם תרצה, אותו העיקרון.
אני לא מבין על מה כל הדיון הזה.
== id | name ==
0 | מרכז
1 | צפון
================================
=========== Cities/Places/Whatever... ============
== id | name | areaId ==
0 | Rishon LeZion | 0
============================================
ואז פשוט משתמשים בשאילתת JOIN אם רוצים את כל הערים באזור מסוים.
זאת לא הבעיה שלי
הבעיה איך אתה יודע אם המשתמש בחר שהוא רוצה אזור שלם או רק עיר אחת ומה תהיה השאילתא בהתאם
נגיד הוא בחר בעיר אחת זה קל - SELECT FROM CITIES WHERE CITY ID = ID
אבל מה אם הוא בוחר באזור איך אני מביא לו את כל הערים ששיכות לאותו אזור? ואיך אני יודע בכלל שהוא רוצה אזור שלם?
אם הוא בוחר עיר אחת:
אם הוא בוחר איזור
עקרונית זה בסדר פשוט להשתמש ב-<optgroup> (שמקבץ אפשרויות ב-<select>), אבל המשתמש לא יוכל ללחוץ על אזור-על במטרה לבחור את כל תתי-האזורים. לצערי אין לזה פתרון סמנטי כרגע. אי אפשר לעשות את זה עם optgroup, כי אין אפשרות לבחור בו בתור אפשרות.
יש לזה פתרון לא סמנטי: לא להשתמש ב-optgroup ולהשתמש ב-JavaScript (לא תוכל לדעת סתם ככה איזה סוג אזור קיבלת בצד השרת, אז תצטרך להוסיף משהו). אתה בעצם מוותר על הסמנטיות כאן, אבל מספק חוויית משתמש נורמלית. עד שיהיה פתרון סמנטי, אני חושב שזה פתרון קביל ואפילו מועדף.
ה-ID שלהם אולי? שאילתות תעשה לבד.
לא הולכים לתת לך כאן את הקוד הסופי על מגש של זהב. אתה מבין SQL בסיסי ולא מבין משהו מסוים? תגיד מה בדיוק אתה לא מבין.
טוב כנראה יש פה אי הבנה גדולה, אנשים פה לא הבינו אותי אולי אני יסביר שוב פעם מהתחלה:
ש לי רשימת SELECT עם אזורים וערים בכל אזור.
יש טבלה של מוצרים, ששם יש CITY_ID, ועוד שתי טבלאות -
CITIES - NAME, AREA_ID
AREAS - ID, NAME
איך אני ידע לפי הVALUE אם הוא בחר לי באזור או בעיר ספיציפית? הרי זה בטבלאות שונות? ויש ID 1 למשל גם בטבלה ערים וגם באזורים
נגיד ואני יכתוב את זה בצורה הזאת:
<option value=1">מרכז</option>
<"option value="1">תל אביב</option>
<"option value="2">רמת גן</option>
פשוט תוסיף אמצי זיהוי ל-value:
<option value="city-1" class="item">ראשון לציון</option>
<option value="city-2" class="item">פתח תקווה</option>
<option value="area-2" class="category">דרום</option>
<option value="city-3" class="item">אשקלון</option>
<option value="city-4" class="item">באר שבע</option>